home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / GMS / GMSDev / EModules / graphics / screens.e < prev    next >
Encoding:
Text File  |  1997-11-30  |  4.9 KB  |  168 lines

  1. /*
  2. **  $VER: screens.e V0.9B
  3. **
  4. **  Screen Definitions.
  5. **
  6. **  (C) Copyright 1996-1997 DreamWorld Productions.
  7. **      All Rights Reserved
  8. */
  9.  
  10. OPT MODULE
  11. OPT EXPORT
  12. OPT PREPROCESS
  13.  
  14. MODULE 'dpkernel/dpkernel','graphics/blitter','system/register',
  15.        'system/tasks'
  16.  
  17. /****************************************************************************
  18. ** Screen object. 
  19. */
  20.  
  21. CONST SCRVERSION  = 1,
  22.       TAGS_SCREEN = $FFFB0000 OR ID_SCREEN
  23.  
  24. OBJECT screen
  25.     head[1]      :ARRAY OF head  /* Standard structure header */
  26.     memptr1      :LONG           /* Ptr to screen 1 */
  27.     memptr2      :LONG           /* Ptr to screen 2 (double buffer) */
  28.     memptr3      :LONG           /* Ptr to screen 3 (triple buffer) */
  29.     inext        :LONG           /* Ptr to a linked screen */
  30.     palette      :PTR TO LONG    /* Ptr to the screen palette */
  31.     raster       :PTR TO raster  /* Ptr to a rasterlist */
  32.     emp          :LONG           /* */
  33.     width        :INT            /* The width of the visible screen */
  34.     height       :INT            /* The height of the visible screen */
  35.     xoffset      :INT            /* Hardware co-ordinate for TOS */
  36.     yoffset      :INT            /* Hardware co-ordinate for LOS */
  37.     bmpxoffset   :INT            /* Offset of the horizontal axis */
  38.     bmpyoffset   :INT            /* Offset of the vertical axis */
  39.     scrmode      :INT            /* What screen mode is it? */
  40.     empty        :INT            /* Reserved. */
  41.     attrib       :LONG           /* Special Attributes are? */
  42.     task         :PTR TO dpktask /* R: Task that owns this screen */
  43.     bitmap       :PTR TO bitmap  /* Bitmap */
  44.     switch       :INT            /* Set to switch the buffers */       
  45. ENDOBJECT
  46.  
  47. CONST BUFFER1 = 12,
  48.       BUFFER2 = 16,
  49.       BUFFER3 = 20
  50.  
  51. /*** Screen Attributes ***/
  52.  
  53. CONST DBLBUFFER    = $00000001,  -> For double buffering 
  54.       TPLBUFFER    = $00000002,  -> Triple buffering!! 
  55.       PLAYFIELD    = $00000004,  -> Set if it's part of a playfield 
  56.       HSCROLL      = $00000008,  -> Gotta set this to do scrolling 
  57.       VSCROLL      = $00000010,  -> For vertical scrolling 
  58.       SPRITES      = $00000020,  -> Set this if you want sprites 
  59.       SBUFFER      = $00000040,  -> Creates a scroll buff for up to 100 screens.
  60.       CENTRE       = $00000080,  -> Centres the screens (sets XOffset/YOffset).
  61.       BLKBDR       = $00000100,  -> Gives a blackborder on AGA machines 
  62.       NOSCRBDR     = $00000200,  -> For putting sprites in the border 
  63.       BLANKPALETTE = $00000400
  64.  
  65. /*** Screen types ***/
  66.  
  67. CONST INTERLEAVED = 1,        -> These are actual numbers, not bits.
  68.       ILBM        = 1,
  69.       PLANAR      = 2, 
  70.       CHUNKY8     = 3,
  71.       CHUNKY16    = 4,
  72.       TRUECOLOUR  = 5
  73.  
  74. /*** Screen modes ***/
  75.  
  76. CONST HIRES   = $0001,     -> High resolution 
  77.       SHIRES  = $0002,     -> Super-High resolution 
  78.       LACED   = $0004,     -> Interlaced 
  79.       LORES   = $0008,     -> Low resolution (default) 
  80.       EXTRAHB = $0010,     -> Extra HalfBrite
  81.       SLACED  = $0020,     -> Super-Laced resolution.
  82.       HAM     = $0040      -> For HAM mode 
  83.  
  84. /*** Screen tags ***/
  85.  
  86. CONST GSA_MemPtr1    = 12 OR TAPTR,
  87.       GSA_MemPtr2    = 16 OR TAPTR,
  88.       GSA_MemPtr3    = 20 OR TAPTR,
  89.       GSA_INext      = 24 OR TAPTR,
  90.       GSA_Palette    = 28 OR TAPTR,
  91.       GSA_Raster     = 32 OR TAPTR,
  92.       GSA_Width      = 40 OR TWORD,
  93.       GSA_Height     = 42 OR TWORD,
  94.       GSA_XOffset    = 44 OR TWORD,
  95.       GSA_YOffset    = 46 OR TWORD,
  96.       GSA_BmpXOffset = 48 OR TWORD,
  97.       GSA_BmpYOffset = 50 OR TWORD,
  98.       GSA_ScrMode    = 52 OR TWORD,
  99.       GSA_Attrib     = 56 OR TLONG
  100.  
  101. CONST GSA_BitmapTags = 64 OR TSTEPIN
  102.  
  103. /****************************************************************************
  104. ** Raster object.
  105. */
  106.  
  107. CONST RASVERSION = 1
  108.  
  109. OBJECT raster
  110.   head[1] :ARRAY OF head   /* Standard header */
  111.   command :PTR TO rhead    /* Pointer to the first command */
  112.   screen  :PTR TO screen   /* Pointer to our Screen owner */
  113.   flags   :LONG            /* Special flags */
  114. ENDOBJECT
  115.  
  116. CONST RSF_DISPLAYED = $00000001   /* If the raster is currently on display */
  117.  
  118. /****************************************************************************
  119. ** Rasterlist command header format.
  120. */
  121.  
  122. OBJECT rstats
  123.   copsize :LONG
  124.   coppos  :PTR TO INT
  125. ENDOBJECT
  126.  
  127. OBJECT rhead
  128.   id      :INT
  129.   version :INT
  130.   stats   :PTR TO rstats
  131.   prev    :PTR TO rhead
  132.   next    :PTR TO rhead
  133. ENDOBJECT
  134.  
  135. /****************************************************************************
  136. ** These are the raster command structures.
  137. */
  138.  
  139. CONST ID_RASTWAIT       = 1,
  140.       ID_RASTFLOOD      = 2,
  141.       ID_RASTCOLOUR     = 3,
  142.       ID_RASTCOLOURLIST = 4,
  143.       ID_RASTMIRROR     = 5
  144.  
  145. OBJECT rwait
  146.   head[1] :ARRAY OF rhead
  147.   line    :INT
  148. ENDOBJECT
  149.  
  150. OBJECT rflood
  151.   head[1] :ARRAY OF rhead
  152. ENDOBJECT
  153.  
  154. OBJECT rcolour
  155.   head[1] :ARRAY OF rhead
  156.   colour  :LONG
  157.   value   :LONG
  158. ENDOBJECT
  159.  
  160. OBJECT rcolourlist
  161.   head[1] :ARRAY OF rhead
  162.   ycoord  :INT
  163.   skip    :INT
  164.   colour  :LONG
  165.   values  :PTR TO LONG
  166. ENDOBJECT
  167.  
  168.